<template>
    <div>
        <h1>人员列表</h1>
        <input type="text" v-model="name" placeholder="请输入名字"/>
        <button @click="addPreson">添加</button>
        <ul>
            <li v-for="persons in personList" :key="persons.id">
                姓名：{{persons.name}}
            </li>
        </ul>

        <!-- Person组件中使用了'Count组件'的'求和'数据，实现组件间数据共享 -->
        <h3 style="color:blue">Count组件的求和为：{{sum}}</h3>
    </div>
</template>

<script>
import {nanoid} from 'nanoid';

    export default {
        name:"Person",
        data(){
            return {
                name:'',
            }
        },
        computed:{
            // 从store中获取共享数据：'Person组件'的'人员列表'（不使用Map的写法）
            personList(){
                return this.$store.state.personList;
            },

            // 从store中获取共享数据：'Count组件'的'求和'（不使用Map的写法）
            sum(){
                return this.$store.state.sum;
            }
        },
        methods:{
            // 添加人员信息
            addPreson(){
                // 将人员信息封装成一个对象
                const Person = {
                    id:nanoid(),
                    name:this.name
                }
                // console.log(Person);
                this.name = '' // 清空输入框
                
                // 通知actions执行操作
                this.$store.dispatch('addPreson' ,Person);
            }
        }
    }
</script>

<style>

</style>